home *** CD-ROM | disk | FTP | other *** search
/ Trusted Irix /B 4.0.4 / Trusted-Irix B-4.0.1.iso / dist / eoe1.idb / usr / include / sys / hpcplpreg.h.z / hpcplpreg.h
Text File  |  1992-04-03  |  2KB  |  82 lines

  1. #ident    "sys/hpcplpreg.h:  $Revision: 1.7 $"
  2.  
  3. /* 
  4.  * hpcplpreg.h - header for the IP12 parallel port driver
  5.  */
  6.  
  7. /* memory descriptor for parallel port transfers
  8.  */
  9. typedef struct memd {
  10.     union {
  11.     unsigned int word0;
  12.     struct {
  13.         unsigned int pad0 :19;
  14.         unsigned int bc   :13;
  15.     } mem_w0;
  16.     } memun_w0;
  17.     union {
  18.     caddr_t buf;
  19.     struct {
  20.         unsigned int eox  :1;
  21.         unsigned int pad1 :3;
  22.         unsigned int cbp  :28;
  23.     } mem_w1;
  24.     } memun_w1;
  25.     union {
  26.     struct memd *forw;
  27.     struct {
  28.         unsigned int pad2  :4;
  29.         unsigned int nbdp  :28;
  30.     } mem_w2;
  31.     } memun_w2;
  32. } memd_t;
  33.  
  34. #define memd_bc memun_w0.mem_w0.bc
  35. #define memd_eox memun_w1.mem_w1.eox
  36. #define memd_cbp memun_w1.mem_w1.cbp
  37. #define memd_buf memun_w1.buf
  38. #define memd_nbdp memun_w2.mem_w2.nbdp
  39. #define memd_forw memun_w2.forw
  40.  
  41. /* structure of parallel port registers
  42.  */
  43. typedef struct plp_regs_s {
  44.     volatile unsigned int bc;        /* byte count */
  45.     volatile memd_t *cbp;         /* current buffer pointer */
  46.     volatile memd_t *nbdp;         /* next buffer descriptor pointer */
  47.     volatile unsigned int ctrl;        /* control register */
  48.     unsigned int pntr;            /* unused */
  49.     unsigned int fifo;            /* unused */
  50.     unsigned char pad0[0x74];        /* unused */
  51.     unsigned char pad1;            /* unused */
  52.     volatile unsigned char extreg;    /* external status/remote */
  53.     unsigned char pad2[2];        /* unused */
  54. } plp_regs_t;
  55.  
  56. #define NPLP    1            /* maximum number of parallel ports */
  57.  
  58. /* modify these parameters for best performance
  59.  */
  60. #define NRPPP        2        /* number of read pages per port */
  61. #define NRP        (NPLP * NRPPP)    /* number of initial read pages */
  62. #define RDSHIFT        2        /* 4 descriptors per page */
  63. #define NRDPP        (1<<RDSHIFT)    /* read descriptors per page */
  64. #define NBPRD        (NBPP>>RDSHIFT)    /* bytes per read descriptor */
  65. #define RDMASK        ~(NBPRD-1)    /* mask for read descriptor bytes */
  66.  
  67. #define NRMD        (NRP*NRDPP)    /* number of receive memory descs */
  68. #define NXMD        6        /* number of transmit memory descs */
  69. #define NMD        (NRMD + NXMD)    /* number of memory descriptors */
  70.  
  71. #define PLP_RTO        (1 * HZ)    /* default: 1 sec timeout on a read */
  72. #define PLP_WTO        0         /* default: never timeout on a write */
  73.  
  74. #define PLP_VEC_NORM    VECTOR_PLP
  75. #define PLP_VEC_XTRA    -1
  76.  
  77. #define PLP_CONTROL_DEF_STROBE     0x7f702100
  78. #define PLP_CONTROL_DEF        PLP_CONTROL_DEF_STROBE
  79.  
  80. #define PLP_EXT_PRT    2
  81. #define PLP_EXT_RESET    1
  82.